
/**
 * 初始化table
 * @param tableIns layer table对象
 * @param tableId 表格ID
 * @param url 请求获取数据地址
 * @param cols 列
 * @param page 是否开启分页
 * @param cellMinWidth 自动匹配列的宽度
 */
function initTable(tableIns, tableId, url, cols, page,cellMinWidth) {
    var table = tableIns.render({
         elem: '#' + tableId
        , url: url
        , cols: cols
        , page: page
        ,even: true
        ,cellMinWidth: cellMinWidth
         ,responseHandler: function (res) {
            // 可进行数据操作
            return {
                "count": res.data.total,
                "data": res.data.records,
                "code": res.code == 200 ? 0 : -1 //code值为200表示成功
            };
        },
    });
    return table;
}

/**
 * 刷新table
 * @param tableIns
 * @param where
 */
function reloadTable(tableIns, where) {
    tableIns.reload({
            where: where
        }
    )
}

/**
 * 提交表单
 * @param formIns
 * @param btnFilter
 * @param url
 */
function saveForm(formIns, btnFilter, url) {
    /* 监听提交 */
    let $ = layui.$;
    formIns.on('submit('+btnFilter+')', function (data) {
        console.log(data.field)
        $.ajax({
            type: 'POST',
            data: data.field,
            url: url,
            dataType: 'json',
            success: function (res) {
                if (res.code == "200"){
                    layer.open({
                        content: '操作成功'
                        ,closeBtn: false
                        ,btn: ['确定']
                        ,yes: function(index){
                            var pIndex = parent.layer.getFrameIndex(window.name); //获取窗口索引
                            parent.layer.close(pIndex);//关闭弹出的子页面窗口
                            parent.location.reload();
                            layer.close(index);
                        }
                    });
                }else{
                    layer.msg(res.msg, {icon: 5});
                }
            }
        })
        return false;
    });
}

/**
 * 删除表单数据
 * @param id
 * @param url
 */
function del(id, url) {
    if (id == null || id == ''){
        layer.msg("请选择数据", {icon: 5});
        return;
    }
    let $ = layui.$;
    layer.confirm('您确定要删除选中的数据', {
        btn: ['确定','取消'] //按钮
    }, function(){
        $.ajax({
            type: 'POST',
            data: {id:id},
            url: url,
            dataType: 'json',
            success: function (res) {
                if (res.code == "200"){
                    layer.open({
                        content: '操作成功'
                        ,closeBtn: false
                        ,btn: ['确定']
                        ,yes: function(index){
                            //var pIndex = parent.layer.getFrameIndex(window.name); //获取窗口索引
                            //parent.layer.close(pIndex);//关闭弹出的子页面窗口
                            location.reload();
                            layer.close(index);
                        }
                    });
                }else{
                    layer.msg(res.msg, {icon: 5});
                }
            }
        });
    });
}
/**
 * 删除表单数据
 * @param tableins
 * @param tableId
 * @param id
 * @param url
 * @param desc 描述
 */
function delLayUiTable(tableins,tableId, id, url, desc) {
    let $ = layui.$;
    let data ;
    if ((tableId == null || tableId == null) && (id == null || id == '')) {
        layer.msg("请选择数据", {icon: 5});
        return;
    }else if (id !== null && id !== ''){
       data = id;
    }else{
        var checkStatus = tableins.checkStatus(tableId);
        if (checkStatus == null){
            layer.msg("请选择数据", {icon: 5});
            return;
        }
        let id = $.map(checkStatus.data,function (row) {
            return row.id;
        });
        data = id.join(",");
    }
    let text = desc == null?'':"["+desc+"]";
    layer.confirm('您确定要删除选中的数据' + text, {
        btn: ['确定','取消'] //按钮
    }, function(){
        $.ajax({
            type: 'POST',
            data: {id:data},
            url: url,
            dataType: 'json',
            success: function (res) {
                if (res.code == "200"){
                    layer.open({
                        content: '操作成功'
                        ,closeBtn: false
                        ,btn: ['确定']
                        ,yes: function(index){
                            //var pIndex = parent.layer.getFrameIndex(window.name); //获取窗口索引
                            //parent.layer.close(pIndex);//关闭弹出的子页面窗口
                            location.reload();
                            layer.close(index);
                        }
                    });
                }else{
                    layer.msg(res.msg, {icon: 5});
                }
            }
        });
    });
}
/**
 * 打开窗口
 * @param width
 * @param height
 * @param title
 * @param url
 */
function openWindow(width, height, title, url) {
    layer.open({
        type: 2,
        area: [width, height],
        fixed: false,
        maxmin: true,
        title: title,
        content: url
    });
};

/**
 * 远程获取表单数据
 * @param url
 * @param fn
 */
function getData(url,fn) {
    let $ = layui.$;
    $.ajax({
        type: 'GET',
        url: url,
        dataType: 'json',
        success: function (res) {
            fn(res)
        }
    });
}
